// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : C:\usr\TkCommon\imageryservice.wsdl
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/imageryservice1.wsdl
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/imageryservice1.wsdl>0
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService2.xsd
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService.xsd
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService3.xsd
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService5.xsd
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService1.xsd
//  >Import : http://dev.virtualearth.net/webservices/v1/metadata/imageryservice/ImageryService4.xsd
// Encoding : UTF-8
// Codegen  : [wfForceSOAP11+]
// Version  : 1.0
// (16/12/2010 07:59:05 - - $Rev: 24171 $)
// ************************************************************************ //

unit imageryservice;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_NLBL = $0004;
  IS_REF  = $0080;


type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Embarcadero types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:int             - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:anyURI          - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:boolean         - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:dateTime        - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:double          - "http://www.w3.org/2001/XMLSchema"[Gbl]

  RequestBase          = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Credentials          = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  ExecutionOptions     = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Heading              = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  UserProfile          = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  ShapeBase            = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  SizeOfint            = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Location             = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  UserLocation         = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  GeocodeLocation      = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Circle               = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Rectangle            = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Polygon              = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  ResponseBase         = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  ResponseSummary      = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  RangeOfint           = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  RangeOfdateTime      = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  Pushpin              = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }
  RequestBase2         = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Credentials2         = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  ExecutionOptions2    = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  UserProfile2         = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Heading2             = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  UserLocation2        = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Location2            = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  GeocodeLocation2     = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  ShapeBase2           = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Circle2              = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Rectangle2           = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Polygon2             = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  SizeOfint2           = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  ResponseBase2        = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  ResponseSummary2     = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[Flt][GblElm] }
  RangeOfint2          = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  RangeOfdateTime2     = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  Pushpin2             = class;                 { "http://dev.virtualearth.net/webservices/v1/common"[GblElm] }
  ImageryMetadataRequest = class;               { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryMetadataOptions = class;               { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryMetadataResponse = class;              { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryMetadataResult = class;                { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryProvider      = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  CoverageArea         = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryMetadataBirdseyeResult = class;        { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  MapUriRequest        = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  MapUriOptions        = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  MapUriResponse       = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }
  ImageryMetadataRequest2 = class;              { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  ImageryMetadataOptions2 = class;              { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  ImageryMetadataResponse2 = class;             { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  ImageryMetadataResult2 = class;               { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  ImageryProvider2     = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  CoverageArea2        = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  ImageryMetadataBirdseyeResult2 = class;       { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  MapUriRequest2       = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  MapUriOptions2       = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  MapUriResponse2      = class;                 { "http://dev.virtualearth.net/webservices/v1/imagery"[GblElm] }
  SearchPoint          = class;                 { "http://dev.virtualearth.net/webservices/v1/search"[GblCplx] }
  SearchPoint2         = class;                 { "http://dev.virtualearth.net/webservices/v1/search"[GblElm] }

  {$SCOPEDENUMS ON}
  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  DeviceType = (Desktop, Mobile);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  DistanceUnit = (Kilometer, Mile);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  Confidence = (High_, Medium, Low_);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  AuthenticationResultCode = (None, NoCredentials, ValidCredentials, InvalidCredentials, CredentialsExpired, NotAuthorized);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  ResponseStatusCode = (Success, BadRequest, ServerError);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  UriScheme = (Http, Https);

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  MapStyle = (
      Road, 
      Aerial, 
      AerialWithLabels, 
      Birdseye, 
      BirdseyeWithLabels, 
      Road_v0, 
      AerialWithLabels_v0, 
      BirdseyeWithLabels_v0, 
      Road_v1, 
      AerialWithLabels_v1, 
      BirdseyeWithLabels_v1
  );

  { "http://dev.virtualearth.net/webservices/v1/common"[GblSmpl] }
  ImageType = (Default_, Png, Jpeg, Gif);

  {$SCOPEDENUMS OFF}



  // ************************************************************************ //
  // XML       : RequestBase, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RequestBase = class(TRemotable)
  private
    FCredentials: Credentials;
    FCredentials_Specified: boolean;
    FCulture: string;
    FCulture_Specified: boolean;
    FExecutionOptions: ExecutionOptions;
    FExecutionOptions_Specified: boolean;
    FUserProfile: UserProfile;
    FUserProfile_Specified: boolean;
    procedure SetCredentials(Index: Integer; const ACredentials: Credentials);
    function  Credentials_Specified(Index: Integer): boolean;
    procedure SetCulture(Index: Integer; const Astring: string);
    function  Culture_Specified(Index: Integer): boolean;
    procedure SetExecutionOptions(Index: Integer; const AExecutionOptions: ExecutionOptions);
    function  ExecutionOptions_Specified(Index: Integer): boolean;
    procedure SetUserProfile(Index: Integer; const AUserProfile: UserProfile);
    function  UserProfile_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Credentials:      Credentials       Index (IS_OPTN or IS_NLBL) read FCredentials write SetCredentials stored Credentials_Specified;
    property Culture:          string            Index (IS_OPTN or IS_NLBL) read FCulture write SetCulture stored Culture_Specified;
    property ExecutionOptions: ExecutionOptions  Index (IS_OPTN or IS_NLBL) read FExecutionOptions write SetExecutionOptions stored ExecutionOptions_Specified;
    property UserProfile:      UserProfile       Index (IS_OPTN or IS_NLBL) read FUserProfile write SetUserProfile stored UserProfile_Specified;
  end;



  // ************************************************************************ //
  // XML       : Credentials, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Credentials = class(TRemotable)
  private
    FApplicationId: string;
    FApplicationId_Specified: boolean;
    FToken: string;
    FToken_Specified: boolean;
    procedure SetApplicationId(Index: Integer; const Astring: string);
    function  ApplicationId_Specified(Index: Integer): boolean;
    procedure SetToken(Index: Integer; const Astring: string);
    function  Token_Specified(Index: Integer): boolean;
  published
    property ApplicationId: string  Index (IS_OPTN or IS_NLBL) read FApplicationId write SetApplicationId stored ApplicationId_Specified;
    property Token:         string  Index (IS_OPTN or IS_NLBL) read FToken write SetToken stored Token_Specified;
  end;



  // ************************************************************************ //
  // XML       : ExecutionOptions, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ExecutionOptions = class(TRemotable)
  private
    FSuppressFaults: Boolean;
    FSuppressFaults_Specified: boolean;
    procedure SetSuppressFaults(Index: Integer; const ABoolean: Boolean);
    function  SuppressFaults_Specified(Index: Integer): boolean;
  published
    property SuppressFaults: Boolean  Index (IS_OPTN) read FSuppressFaults write SetSuppressFaults stored SuppressFaults_Specified;
  end;



  // ************************************************************************ //
  // XML       : Heading, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Heading = class(TRemotable)
  private
    FOrientation: Double;
    FOrientation_Specified: boolean;
    procedure SetOrientation(Index: Integer; const ADouble: Double);
    function  Orientation_Specified(Index: Integer): boolean;
  published
    property Orientation: Double  Index (IS_OPTN) read FOrientation write SetOrientation stored Orientation_Specified;
  end;



  // ************************************************************************ //
  // XML       : UserProfile, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  UserProfile = class(TRemotable)
  private
    FCurrentHeading: Heading;
    FCurrentHeading_Specified: boolean;
    FCurrentLocation: UserLocation;
    FCurrentLocation_Specified: boolean;
    FDeviceType: DeviceType;
    FDeviceType_Specified: boolean;
    FDistanceUnit: DistanceUnit;
    FDistanceUnit_Specified: boolean;
    FIPAddress: string;
    FIPAddress_Specified: boolean;
    FMapView: ShapeBase;
    FMapView_Specified: boolean;
    FScreenSize: SizeOfint;
    FScreenSize_Specified: boolean;
    procedure SetCurrentHeading(Index: Integer; const AHeading: Heading);
    function  CurrentHeading_Specified(Index: Integer): boolean;
    procedure SetCurrentLocation(Index: Integer; const AUserLocation: UserLocation);
    function  CurrentLocation_Specified(Index: Integer): boolean;
    procedure SetDeviceType(Index: Integer; const ADeviceType: DeviceType);
    function  DeviceType_Specified(Index: Integer): boolean;
    procedure SetDistanceUnit(Index: Integer; const ADistanceUnit: DistanceUnit);
    function  DistanceUnit_Specified(Index: Integer): boolean;
    procedure SetIPAddress(Index: Integer; const Astring: string);
    function  IPAddress_Specified(Index: Integer): boolean;
    procedure SetMapView(Index: Integer; const AShapeBase: ShapeBase);
    function  MapView_Specified(Index: Integer): boolean;
    procedure SetScreenSize(Index: Integer; const ASizeOfint: SizeOfint);
    function  ScreenSize_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property CurrentHeading:  Heading       Index (IS_OPTN or IS_NLBL) read FCurrentHeading write SetCurrentHeading stored CurrentHeading_Specified;
    property CurrentLocation: UserLocation  Index (IS_OPTN or IS_NLBL) read FCurrentLocation write SetCurrentLocation stored CurrentLocation_Specified;
    property DeviceType:      DeviceType    Index (IS_OPTN) read FDeviceType write SetDeviceType stored DeviceType_Specified;
    property DistanceUnit:    DistanceUnit  Index (IS_OPTN) read FDistanceUnit write SetDistanceUnit stored DistanceUnit_Specified;
    property IPAddress:       string        Index (IS_OPTN or IS_NLBL) read FIPAddress write SetIPAddress stored IPAddress_Specified;
    property MapView:         ShapeBase     Index (IS_OPTN or IS_NLBL) read FMapView write SetMapView stored MapView_Specified;
    property ScreenSize:      SizeOfint     Index (IS_OPTN or IS_NLBL) read FScreenSize write SetScreenSize stored ScreenSize_Specified;
  end;



  // ************************************************************************ //
  // XML       : ShapeBase, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ShapeBase = class(TRemotable)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : SizeOfint, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  SizeOfint = class(TRemotable)
  private
    FHeight: Integer;
    FHeight_Specified: boolean;
    FWidth: Integer;
    FWidth_Specified: boolean;
    procedure SetHeight(Index: Integer; const AInteger: Integer);
    function  Height_Specified(Index: Integer): boolean;
    procedure SetWidth(Index: Integer; const AInteger: Integer);
    function  Width_Specified(Index: Integer): boolean;
  published
    property Height: Integer  Index (IS_OPTN) read FHeight write SetHeight stored Height_Specified;
    property Width:  Integer  Index (IS_OPTN) read FWidth write SetWidth stored Width_Specified;
  end;



  // ************************************************************************ //
  // XML       : Location, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Location = class(TRemotable)
  private
    FAltitude: Double;
    FAltitude_Specified: boolean;
    FLatitude: Double;
    FLatitude_Specified: boolean;
    FLongitude: Double;
    FLongitude_Specified: boolean;
    procedure SetAltitude(Index: Integer; const ADouble: Double);
    function  Altitude_Specified(Index: Integer): boolean;
    procedure SetLatitude(Index: Integer; const ADouble: Double);
    function  Latitude_Specified(Index: Integer): boolean;
    procedure SetLongitude(Index: Integer; const ADouble: Double);
    function  Longitude_Specified(Index: Integer): boolean;
  published
    property Altitude:  Double  Index (IS_OPTN) read FAltitude write SetAltitude stored Altitude_Specified;
    property Latitude:  Double  Index (IS_OPTN) read FLatitude write SetLatitude stored Latitude_Specified;
    property Longitude: Double  Index (IS_OPTN) read FLongitude write SetLongitude stored Longitude_Specified;
  end;



  // ************************************************************************ //
  // XML       : UserLocation, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  UserLocation = class(Location)
  private
    FConfidence: Confidence;
    FConfidence_Specified: boolean;
    procedure SetConfidence(Index: Integer; const AConfidence: Confidence);
    function  Confidence_Specified(Index: Integer): boolean;
  published
    property Confidence: Confidence  Index (IS_OPTN) read FConfidence write SetConfidence stored Confidence_Specified;
  end;



  // ************************************************************************ //
  // XML       : GeocodeLocation, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  GeocodeLocation = class(Location)
  private
    FCalculationMethod: string;
    FCalculationMethod_Specified: boolean;
    procedure SetCalculationMethod(Index: Integer; const Astring: string);
    function  CalculationMethod_Specified(Index: Integer): boolean;
  published
    property CalculationMethod: string  Index (IS_OPTN or IS_NLBL) read FCalculationMethod write SetCalculationMethod stored CalculationMethod_Specified;
  end;



  // ************************************************************************ //
  // XML       : Circle, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Circle = class(ShapeBase)
  private
    FCenter: Location;
    FCenter_Specified: boolean;
    FDistanceUnit: DistanceUnit;
    FDistanceUnit_Specified: boolean;
    FRadius: Double;
    FRadius_Specified: boolean;
    procedure SetCenter(Index: Integer; const ALocation: Location);
    function  Center_Specified(Index: Integer): boolean;
    procedure SetDistanceUnit(Index: Integer; const ADistanceUnit: DistanceUnit);
    function  DistanceUnit_Specified(Index: Integer): boolean;
    procedure SetRadius(Index: Integer; const ADouble: Double);
    function  Radius_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Center:       Location      Index (IS_OPTN or IS_NLBL) read FCenter write SetCenter stored Center_Specified;
    property DistanceUnit: DistanceUnit  Index (IS_OPTN) read FDistanceUnit write SetDistanceUnit stored DistanceUnit_Specified;
    property Radius:       Double        Index (IS_OPTN) read FRadius write SetRadius stored Radius_Specified;
  end;



  // ************************************************************************ //
  // XML       : Rectangle, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Rectangle = class(ShapeBase)
  private
    FNortheast: Location;
    FNortheast_Specified: boolean;
    FSouthwest: Location;
    FSouthwest_Specified: boolean;
    procedure SetNortheast(Index: Integer; const ALocation: Location);
    function  Northeast_Specified(Index: Integer): boolean;
    procedure SetSouthwest(Index: Integer; const ALocation: Location);
    function  Southwest_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Northeast: Location  Index (IS_OPTN or IS_NLBL) read FNortheast write SetNortheast stored Northeast_Specified;
    property Southwest: Location  Index (IS_OPTN or IS_NLBL) read FSouthwest write SetSouthwest stored Southwest_Specified;
  end;

  ArrayOfLocation = array of Location;          { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }


  // ************************************************************************ //
  // XML       : Polygon, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Polygon = class(ShapeBase)
  private
    FVertices: ArrayOfLocation;
    FVertices_Specified: boolean;
    procedure SetVertices(Index: Integer; const AArrayOfLocation: ArrayOfLocation);
    function  Vertices_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Vertices: ArrayOfLocation  Index (IS_OPTN or IS_NLBL) read FVertices write SetVertices stored Vertices_Specified;
  end;



  // ************************************************************************ //
  // XML       : ResponseBase, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ResponseBase = class(TRemotable)
  private
    FBrandLogoUri: string;
    FBrandLogoUri_Specified: boolean;
    FResponseSummary: ResponseSummary;
    FResponseSummary_Specified: boolean;
    procedure SetBrandLogoUri(Index: Integer; const Astring: string);
    function  BrandLogoUri_Specified(Index: Integer): boolean;
    procedure SetResponseSummary(Index: Integer; const AResponseSummary: ResponseSummary);
    function  ResponseSummary_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property BrandLogoUri:    string           Index (IS_OPTN or IS_NLBL) read FBrandLogoUri write SetBrandLogoUri stored BrandLogoUri_Specified;
    property ResponseSummary: ResponseSummary  Index (IS_OPTN or IS_NLBL) read FResponseSummary write SetResponseSummary stored ResponseSummary_Specified;
  end;



  // ************************************************************************ //
  // XML       : ResponseSummary, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ResponseSummary = class(TRemotable)
  private
    FAuthenticationResultCode: AuthenticationResultCode;
    FAuthenticationResultCode_Specified: boolean;
    FCopyright: string;
    FCopyright_Specified: boolean;
    FFaultReason: string;
    FFaultReason_Specified: boolean;
    FStatusCode: ResponseStatusCode;
    FStatusCode_Specified: boolean;
    FTraceId: string;
    FTraceId_Specified: boolean;
    procedure SetAuthenticationResultCode(Index: Integer; const AAuthenticationResultCode: AuthenticationResultCode);
    function  AuthenticationResultCode_Specified(Index: Integer): boolean;
    procedure SetCopyright(Index: Integer; const Astring: string);
    function  Copyright_Specified(Index: Integer): boolean;
    procedure SetFaultReason(Index: Integer; const Astring: string);
    function  FaultReason_Specified(Index: Integer): boolean;
    procedure SetStatusCode(Index: Integer; const AResponseStatusCode: ResponseStatusCode);
    function  StatusCode_Specified(Index: Integer): boolean;
    procedure SetTraceId(Index: Integer; const Astring: string);
    function  TraceId_Specified(Index: Integer): boolean;
  published
    property AuthenticationResultCode: AuthenticationResultCode  Index (IS_OPTN) read FAuthenticationResultCode write SetAuthenticationResultCode stored AuthenticationResultCode_Specified;
    property Copyright:                string                    Index (IS_OPTN or IS_NLBL) read FCopyright write SetCopyright stored Copyright_Specified;
    property FaultReason:              string                    Index (IS_OPTN or IS_NLBL) read FFaultReason write SetFaultReason stored FaultReason_Specified;
    property StatusCode:               ResponseStatusCode        Index (IS_OPTN) read FStatusCode write SetStatusCode stored StatusCode_Specified;
    property TraceId:                  string                    Index (IS_OPTN or IS_NLBL) read FTraceId write SetTraceId stored TraceId_Specified;
  end;



  // ************************************************************************ //
  // XML       : RangeOfint, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RangeOfint = class(TRemotable)
  private
    FFrom: Integer;
    FFrom_Specified: boolean;
    FTo_: Integer;
    FTo__Specified: boolean;
    procedure SetFrom(Index: Integer; const AInteger: Integer);
    function  From_Specified(Index: Integer): boolean;
    procedure SetTo_(Index: Integer; const AInteger: Integer);
    function  To__Specified(Index: Integer): boolean;
  published
    property From: Integer  Index (IS_OPTN) read FFrom write SetFrom stored From_Specified;
    property To_:  Integer  Index (IS_OPTN) read FTo_ write SetTo_ stored To__Specified;
  end;



  // ************************************************************************ //
  // XML       : RangeOfdateTime, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RangeOfdateTime = class(TRemotable)
  private
    FFrom: TXSDateTime;
    FFrom_Specified: boolean;
    FTo_: TXSDateTime;
    FTo__Specified: boolean;
    procedure SetFrom(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  From_Specified(Index: Integer): boolean;
    procedure SetTo_(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  To__Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property From: TXSDateTime  Index (IS_OPTN) read FFrom write SetFrom stored From_Specified;
    property To_:  TXSDateTime  Index (IS_OPTN) read FTo_ write SetTo_ stored To__Specified;
  end;

  ArrayOfPushpin = array of Pushpin;            { "http://dev.virtualearth.net/webservices/v1/common"[GblCplx] }


  // ************************************************************************ //
  // XML       : Pushpin, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Pushpin = class(TRemotable)
  private
    FIconStyle: string;
    FIconStyle_Specified: boolean;
    FLabel_: string;
    FLabel__Specified: boolean;
    FLocation: Location;
    FLocation_Specified: boolean;
    procedure SetIconStyle(Index: Integer; const Astring: string);
    function  IconStyle_Specified(Index: Integer): boolean;
    procedure SetLabel_(Index: Integer; const Astring: string);
    function  Label__Specified(Index: Integer): boolean;
    procedure SetLocation(Index: Integer; const ALocation: Location);
    function  Location_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property IconStyle: string    Index (IS_OPTN or IS_NLBL) read FIconStyle write SetIconStyle stored IconStyle_Specified;
    property Label_:    string    Index (IS_OPTN or IS_NLBL) read FLabel_ write SetLabel_ stored Label__Specified;
    property Location:  Location  Index (IS_OPTN or IS_NLBL) read FLocation write SetLocation stored Location_Specified;
  end;



  // ************************************************************************ //
  // XML       : RequestBase, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RequestBase2 = class(RequestBase)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Credentials, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Credentials2 = class(Credentials)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ExecutionOptions, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ExecutionOptions2 = class(ExecutionOptions)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : UserProfile, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  UserProfile2 = class(UserProfile)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Heading, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Heading2 = class(Heading)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : UserLocation, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  UserLocation2 = class(UserLocation)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Location, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Location2 = class(Location)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : GeocodeLocation, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  GeocodeLocation2 = class(GeocodeLocation)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ShapeBase, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ShapeBase2 = class(ShapeBase)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Circle, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Circle2 = class(Circle)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Rectangle, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Rectangle2 = class(Rectangle)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Polygon, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Polygon2 = class(Polygon)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : SizeOfint, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  SizeOfint2 = class(SizeOfint)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ResponseBase, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  ResponseBase2 = class(ResponseBase)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ResponseSummary, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // Info      : Fault
  // Base Types: ResponseSummary
  // ************************************************************************ //
  ResponseSummary2 = class(ERemotableException)
  private
    FAuthenticationResultCode: AuthenticationResultCode;
    FAuthenticationResultCode_Specified: boolean;
    FCopyright: string;
    FCopyright_Specified: boolean;
    FFaultReason: string;
    FFaultReason_Specified: boolean;
    FStatusCode: ResponseStatusCode;
    FStatusCode_Specified: boolean;
    FTraceId: string;
    FTraceId_Specified: boolean;
    procedure SetAuthenticationResultCode(Index: Integer; const AAuthenticationResultCode: AuthenticationResultCode);
    function  AuthenticationResultCode_Specified(Index: Integer): boolean;
    procedure SetCopyright(Index: Integer; const Astring: string);
    function  Copyright_Specified(Index: Integer): boolean;
    procedure SetFaultReason(Index: Integer; const Astring: string);
    function  FaultReason_Specified(Index: Integer): boolean;
    procedure SetStatusCode(Index: Integer; const AResponseStatusCode: ResponseStatusCode);
    function  StatusCode_Specified(Index: Integer): boolean;
    procedure SetTraceId(Index: Integer; const Astring: string);
    function  TraceId_Specified(Index: Integer): boolean;
  published
    property AuthenticationResultCode: AuthenticationResultCode  Index (IS_OPTN) read FAuthenticationResultCode write SetAuthenticationResultCode stored AuthenticationResultCode_Specified;
    property Copyright:                string                    Index (IS_OPTN or IS_NLBL) read FCopyright write SetCopyright stored Copyright_Specified;
    property FaultReason:              string                    Index (IS_OPTN or IS_NLBL) read FFaultReason write SetFaultReason stored FaultReason_Specified;
    property StatusCode:               ResponseStatusCode        Index (IS_OPTN) read FStatusCode write SetStatusCode stored StatusCode_Specified;
    property TraceId:                  string                    Index (IS_OPTN or IS_NLBL) read FTraceId write SetTraceId stored TraceId_Specified;
  end;



  // ************************************************************************ //
  // XML       : RangeOfint, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RangeOfint2 = class(RangeOfint)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : RangeOfdateTime, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  RangeOfdateTime2 = class(RangeOfdateTime)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Pushpin, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/common
  // ************************************************************************ //
  Pushpin2 = class(Pushpin)
  private
  published
  end;

  ArrayOfstring = array of string;              { "http://schemas.microsoft.com/2003/10/Serialization/Arrays"[GblCplx] }


  // ************************************************************************ //
  // XML       : ImageryMetadataRequest, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataRequest = class(RequestBase)
  private
    FOptions: ImageryMetadataOptions;
    FOptions_Specified: boolean;
    FStyle: MapStyle;
    FStyle_Specified: boolean;
    procedure SetOptions(Index: Integer; const AImageryMetadataOptions: ImageryMetadataOptions);
    function  Options_Specified(Index: Integer): boolean;
    procedure SetStyle(Index: Integer; const AMapStyle: MapStyle);
    function  Style_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Options: ImageryMetadataOptions  Index (IS_OPTN or IS_NLBL) read FOptions write SetOptions stored Options_Specified;
    property Style:   MapStyle                Index (IS_OPTN) read FStyle write SetStyle stored Style_Specified;
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataOptions, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataOptions = class(TRemotable)
  private
    FHeading: Heading;
    FHeading_Specified: boolean;
    FLocation: Location;
    FLocation_Specified: boolean;
    FReturnImageryProviders: Boolean;
    FReturnImageryProviders_Specified: boolean;
    FUriScheme: UriScheme;
    FUriScheme_Specified: boolean;
    FZoomLevel: Integer;
    FZoomLevel_Specified: boolean;
    procedure SetHeading(Index: Integer; const AHeading: Heading);
    function  Heading_Specified(Index: Integer): boolean;
    procedure SetLocation(Index: Integer; const ALocation: Location);
    function  Location_Specified(Index: Integer): boolean;
    procedure SetReturnImageryProviders(Index: Integer; const ABoolean: Boolean);
    function  ReturnImageryProviders_Specified(Index: Integer): boolean;
    procedure SetUriScheme(Index: Integer; const AUriScheme: UriScheme);
    function  UriScheme_Specified(Index: Integer): boolean;
    procedure SetZoomLevel(Index: Integer; const AInteger: Integer);
    function  ZoomLevel_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Heading:                Heading    Index (IS_OPTN or IS_NLBL) read FHeading write SetHeading stored Heading_Specified;
    property Location:               Location   Index (IS_OPTN or IS_NLBL) read FLocation write SetLocation stored Location_Specified;
    property ReturnImageryProviders: Boolean    Index (IS_OPTN) read FReturnImageryProviders write SetReturnImageryProviders stored ReturnImageryProviders_Specified;
    property UriScheme:              UriScheme  Index (IS_OPTN) read FUriScheme write SetUriScheme stored UriScheme_Specified;
    property ZoomLevel:              Integer    Index (IS_OPTN or IS_NLBL) read FZoomLevel write SetZoomLevel stored ZoomLevel_Specified;
  end;

  ArrayOfImageryMetadataResult = array of ImageryMetadataResult;   { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }


  // ************************************************************************ //
  // XML       : ImageryMetadataResponse, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataResponse = class(ResponseBase)
  private
    FResults: ArrayOfImageryMetadataResult;
    FResults_Specified: boolean;
    procedure SetResults(Index: Integer; const AArrayOfImageryMetadataResult: ArrayOfImageryMetadataResult);
    function  Results_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Results: ArrayOfImageryMetadataResult  Index (IS_OPTN or IS_NLBL) read FResults write SetResults stored Results_Specified;
  end;

  ArrayOfImageryProvider = array of ImageryProvider;   { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }


  // ************************************************************************ //
  // XML       : ImageryMetadataResult, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataResult = class(TRemotable)
  private
    FImageSize: SizeOfint;
    FImageSize_Specified: boolean;
    FImageUri: string;
    FImageUri_Specified: boolean;
    FImageUriSubdomains: ArrayOfstring;
    FImageUriSubdomains_Specified: boolean;
    FImageryProviders: ArrayOfImageryProvider;
    FImageryProviders_Specified: boolean;
    FVintage: RangeOfdateTime;
    FVintage_Specified: boolean;
    FZoomRange: RangeOfint;
    FZoomRange_Specified: boolean;
    procedure SetImageSize(Index: Integer; const ASizeOfint: SizeOfint);
    function  ImageSize_Specified(Index: Integer): boolean;
    procedure SetImageUri(Index: Integer; const Astring: string);
    function  ImageUri_Specified(Index: Integer): boolean;
    procedure SetImageUriSubdomains(Index: Integer; const AArrayOfstring: ArrayOfstring);
    function  ImageUriSubdomains_Specified(Index: Integer): boolean;
    procedure SetImageryProviders(Index: Integer; const AArrayOfImageryProvider: ArrayOfImageryProvider);
    function  ImageryProviders_Specified(Index: Integer): boolean;
    procedure SetVintage(Index: Integer; const ARangeOfdateTime: RangeOfdateTime);
    function  Vintage_Specified(Index: Integer): boolean;
    procedure SetZoomRange(Index: Integer; const ARangeOfint: RangeOfint);
    function  ZoomRange_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property ImageSize:          SizeOfint               Index (IS_OPTN or IS_NLBL) read FImageSize write SetImageSize stored ImageSize_Specified;
    property ImageUri:           string                  Index (IS_OPTN or IS_NLBL) read FImageUri write SetImageUri stored ImageUri_Specified;
    property ImageUriSubdomains: ArrayOfstring           Index (IS_OPTN or IS_NLBL) read FImageUriSubdomains write SetImageUriSubdomains stored ImageUriSubdomains_Specified;
    property ImageryProviders:   ArrayOfImageryProvider  Index (IS_OPTN or IS_NLBL) read FImageryProviders write SetImageryProviders stored ImageryProviders_Specified;
    property Vintage:            RangeOfdateTime         Index (IS_OPTN or IS_NLBL) read FVintage write SetVintage stored Vintage_Specified;
    property ZoomRange:          RangeOfint              Index (IS_OPTN or IS_NLBL) read FZoomRange write SetZoomRange stored ZoomRange_Specified;
  end;

  ArrayOfCoverageArea = array of CoverageArea;   { "http://dev.virtualearth.net/webservices/v1/imagery"[GblCplx] }


  // ************************************************************************ //
  // XML       : ImageryProvider, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryProvider = class(TRemotable)
  private
    FAttribution: string;
    FAttribution_Specified: boolean;
    FCoverageAreas: ArrayOfCoverageArea;
    FCoverageAreas_Specified: boolean;
    procedure SetAttribution(Index: Integer; const Astring: string);
    function  Attribution_Specified(Index: Integer): boolean;
    procedure SetCoverageAreas(Index: Integer; const AArrayOfCoverageArea: ArrayOfCoverageArea);
    function  CoverageAreas_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Attribution:   string               Index (IS_OPTN or IS_NLBL) read FAttribution write SetAttribution stored Attribution_Specified;
    property CoverageAreas: ArrayOfCoverageArea  Index (IS_OPTN or IS_NLBL) read FCoverageAreas write SetCoverageAreas stored CoverageAreas_Specified;
  end;



  // ************************************************************************ //
  // XML       : CoverageArea, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  CoverageArea = class(TRemotable)
  private
    FBoundingRectangle: Rectangle;
    FBoundingRectangle_Specified: boolean;
    FZoomRange: RangeOfint;
    FZoomRange_Specified: boolean;
    procedure SetBoundingRectangle(Index: Integer; const ARectangle: Rectangle);
    function  BoundingRectangle_Specified(Index: Integer): boolean;
    procedure SetZoomRange(Index: Integer; const ARangeOfint: RangeOfint);
    function  ZoomRange_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property BoundingRectangle: Rectangle   Index (IS_OPTN or IS_NLBL) read FBoundingRectangle write SetBoundingRectangle stored BoundingRectangle_Specified;
    property ZoomRange:         RangeOfint  Index (IS_OPTN or IS_NLBL) read FZoomRange write SetZoomRange stored ZoomRange_Specified;
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataBirdseyeResult, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataBirdseyeResult = class(ImageryMetadataResult)
  private
    FHeading: Heading;
    FHeading_Specified: boolean;
    FTilesX: Integer;
    FTilesX_Specified: boolean;
    FTilesY: Integer;
    FTilesY_Specified: boolean;
    procedure SetHeading(Index: Integer; const AHeading: Heading);
    function  Heading_Specified(Index: Integer): boolean;
    procedure SetTilesX(Index: Integer; const AInteger: Integer);
    function  TilesX_Specified(Index: Integer): boolean;
    procedure SetTilesY(Index: Integer; const AInteger: Integer);
    function  TilesY_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Heading: Heading  Index (IS_OPTN or IS_NLBL) read FHeading write SetHeading stored Heading_Specified;
    property TilesX:  Integer  Index (IS_OPTN) read FTilesX write SetTilesX stored TilesX_Specified;
    property TilesY:  Integer  Index (IS_OPTN) read FTilesY write SetTilesY stored TilesY_Specified;
  end;



  // ************************************************************************ //
  // XML       : MapUriRequest, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriRequest = class(RequestBase)
  private
    FCenter: Location;
    FCenter_Specified: boolean;
    FMajorRoutesDestination: Location;
    FMajorRoutesDestination_Specified: boolean;
    FOptions: MapUriOptions;
    FOptions_Specified: boolean;
    FPushpins: ArrayOfPushpin;
    FPushpins_Specified: boolean;
    procedure SetCenter(Index: Integer; const ALocation: Location);
    function  Center_Specified(Index: Integer): boolean;
    procedure SetMajorRoutesDestination(Index: Integer; const ALocation: Location);
    function  MajorRoutesDestination_Specified(Index: Integer): boolean;
    procedure SetOptions(Index: Integer; const AMapUriOptions: MapUriOptions);
    function  Options_Specified(Index: Integer): boolean;
    procedure SetPushpins(Index: Integer; const AArrayOfPushpin: ArrayOfPushpin);
    function  Pushpins_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Center:                 Location        Index (IS_OPTN or IS_NLBL) read FCenter write SetCenter stored Center_Specified;
    property MajorRoutesDestination: Location        Index (IS_OPTN or IS_NLBL) read FMajorRoutesDestination write SetMajorRoutesDestination stored MajorRoutesDestination_Specified;
    property Options:                MapUriOptions   Index (IS_OPTN or IS_NLBL) read FOptions write SetOptions stored Options_Specified;
    property Pushpins:               ArrayOfPushpin  Index (IS_OPTN or IS_NLBL) read FPushpins write SetPushpins stored Pushpins_Specified;
  end;



  // ************************************************************************ //
  // XML       : MapUriOptions, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriOptions = class(TRemotable)
  private
    FDisplayLayers: ArrayOfstring;
    FDisplayLayers_Specified: boolean;
    FImageSize: SizeOfint;
    FImageSize_Specified: boolean;
    FImageType: ImageType;
    FImageType_Specified: boolean;
    FPreventIconCollision: Boolean;
    FPreventIconCollision_Specified: boolean;
    FStyle: MapStyle;
    FStyle_Specified: boolean;
    FUriScheme: UriScheme;
    FUriScheme_Specified: boolean;
    FZoomLevel: Integer;
    FZoomLevel_Specified: boolean;
    procedure SetDisplayLayers(Index: Integer; const AArrayOfstring: ArrayOfstring);
    function  DisplayLayers_Specified(Index: Integer): boolean;
    procedure SetImageSize(Index: Integer; const ASizeOfint: SizeOfint);
    function  ImageSize_Specified(Index: Integer): boolean;
    procedure SetImageType(Index: Integer; const AImageType: ImageType);
    function  ImageType_Specified(Index: Integer): boolean;
    procedure SetPreventIconCollision(Index: Integer; const ABoolean: Boolean);
    function  PreventIconCollision_Specified(Index: Integer): boolean;
    procedure SetStyle(Index: Integer; const AMapStyle: MapStyle);
    function  Style_Specified(Index: Integer): boolean;
    procedure SetUriScheme(Index: Integer; const AUriScheme: UriScheme);
    function  UriScheme_Specified(Index: Integer): boolean;
    procedure SetZoomLevel(Index: Integer; const AInteger: Integer);
    function  ZoomLevel_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DisplayLayers:        ArrayOfstring  Index (IS_OPTN or IS_NLBL) read FDisplayLayers write SetDisplayLayers stored DisplayLayers_Specified;
    property ImageSize:            SizeOfint      Index (IS_OPTN or IS_NLBL) read FImageSize write SetImageSize stored ImageSize_Specified;
    property ImageType:            ImageType      Index (IS_OPTN) read FImageType write SetImageType stored ImageType_Specified;
    property PreventIconCollision: Boolean        Index (IS_OPTN) read FPreventIconCollision write SetPreventIconCollision stored PreventIconCollision_Specified;
    property Style:                MapStyle       Index (IS_OPTN) read FStyle write SetStyle stored Style_Specified;
    property UriScheme:            UriScheme      Index (IS_OPTN) read FUriScheme write SetUriScheme stored UriScheme_Specified;
    property ZoomLevel:            Integer        Index (IS_OPTN or IS_NLBL) read FZoomLevel write SetZoomLevel stored ZoomLevel_Specified;
  end;



  // ************************************************************************ //
  // XML       : MapUriResponse, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriResponse = class(ResponseBase)
  private
    FUri: string;
    FUri_Specified: boolean;
    procedure SetUri(Index: Integer; const Astring: string);
    function  Uri_Specified(Index: Integer): boolean;
  published
    property Uri: string  Index (IS_OPTN or IS_NLBL) read FUri write SetUri stored Uri_Specified;
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataRequest, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataRequest2 = class(ImageryMetadataRequest)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataOptions, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataOptions2 = class(ImageryMetadataOptions)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataResponse, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataResponse2 = class(ImageryMetadataResponse)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataResult, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataResult2 = class(ImageryMetadataResult)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ImageryProvider, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryProvider2 = class(ImageryProvider)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : CoverageArea, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  CoverageArea2 = class(CoverageArea)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ImageryMetadataBirdseyeResult, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  ImageryMetadataBirdseyeResult2 = class(ImageryMetadataBirdseyeResult)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : MapUriRequest, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriRequest2 = class(MapUriRequest)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : MapUriOptions, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriOptions2 = class(MapUriOptions)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : MapUriResponse, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery
  // ************************************************************************ //
  MapUriResponse2 = class(MapUriResponse)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : SearchPoint, global, <complexType>
  // Namespace : http://dev.virtualearth.net/webservices/v1/search
  // ************************************************************************ //
  SearchPoint = class(ShapeBase)
  private
    FPoint: Location;
    FPoint_Specified: boolean;
    procedure SetPoint(Index: Integer; const ALocation: Location);
    function  Point_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Point: Location  Index (IS_OPTN or IS_NLBL) read FPoint write SetPoint stored Point_Specified;
  end;



  // ************************************************************************ //
  // XML       : SearchPoint, global, <element>
  // Namespace : http://dev.virtualearth.net/webservices/v1/search
  // ************************************************************************ //
  SearchPoint2 = class(SearchPoint)
  private
  published
  end;


  // ************************************************************************ //
  // Namespace : http://dev.virtualearth.net/webservices/v1/imagery/contracts
  // soapAction: http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : BasicHttpBinding_IImageryService
  // service   : ImageryService
  // port      : BasicHttpBinding_IImageryService
  // URL       : http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc
  // ************************************************************************ //
  IImageryService = interface(IInvokable)
  ['{89700BFE-7110-F890-B101-85E746589CA0}']
    function  GetImageryMetadata(const request: ImageryMetadataRequest): ImageryMetadataResponse; stdcall;
    function  GetMapUri(const request: MapUriRequest): MapUriResponse; stdcall;
  end;

function GetIImageryService(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IImageryService;


implementation
  uses SysUtils;

function GetIImageryService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IImageryService;
const
  defWSDL = 'C:\usr\TkCommon\imageryservice.wsdl';
  defURL  = 'http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc';
  defSvc  = 'ImageryService';
  defPrt  = 'BasicHttpBinding_IImageryService';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as IImageryService);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


destructor RequestBase.Destroy;
begin
  SysUtils.FreeAndNil(FCredentials);
  SysUtils.FreeAndNil(FExecutionOptions);
  SysUtils.FreeAndNil(FUserProfile);
  inherited Destroy;
end;

procedure RequestBase.SetCredentials(Index: Integer; const ACredentials: Credentials);
begin
  FCredentials := ACredentials;
  FCredentials_Specified := True;
end;

function RequestBase.Credentials_Specified(Index: Integer): boolean;
begin
  Result := FCredentials_Specified;
end;

procedure RequestBase.SetCulture(Index: Integer; const Astring: string);
begin
  FCulture := Astring;
  FCulture_Specified := True;
end;

function RequestBase.Culture_Specified(Index: Integer): boolean;
begin
  Result := FCulture_Specified;
end;

procedure RequestBase.SetExecutionOptions(Index: Integer; const AExecutionOptions: ExecutionOptions);
begin
  FExecutionOptions := AExecutionOptions;
  FExecutionOptions_Specified := True;
end;

function RequestBase.ExecutionOptions_Specified(Index: Integer): boolean;
begin
  Result := FExecutionOptions_Specified;
end;

procedure RequestBase.SetUserProfile(Index: Integer; const AUserProfile: UserProfile);
begin
  FUserProfile := AUserProfile;
  FUserProfile_Specified := True;
end;

function RequestBase.UserProfile_Specified(Index: Integer): boolean;
begin
  Result := FUserProfile_Specified;
end;

procedure Credentials.SetApplicationId(Index: Integer; const Astring: string);
begin
  FApplicationId := Astring;
  FApplicationId_Specified := True;
end;

function Credentials.ApplicationId_Specified(Index: Integer): boolean;
begin
  Result := FApplicationId_Specified;
end;

procedure Credentials.SetToken(Index: Integer; const Astring: string);
begin
  FToken := Astring;
  FToken_Specified := True;
end;

function Credentials.Token_Specified(Index: Integer): boolean;
begin
  Result := FToken_Specified;
end;

procedure ExecutionOptions.SetSuppressFaults(Index: Integer; const ABoolean: Boolean);
begin
  FSuppressFaults := ABoolean;
  FSuppressFaults_Specified := True;
end;

function ExecutionOptions.SuppressFaults_Specified(Index: Integer): boolean;
begin
  Result := FSuppressFaults_Specified;
end;

procedure Heading.SetOrientation(Index: Integer; const ADouble: Double);
begin
  FOrientation := ADouble;
  FOrientation_Specified := True;
end;

function Heading.Orientation_Specified(Index: Integer): boolean;
begin
  Result := FOrientation_Specified;
end;

destructor UserProfile.Destroy;
begin
  SysUtils.FreeAndNil(FCurrentHeading);
  SysUtils.FreeAndNil(FCurrentLocation);
  SysUtils.FreeAndNil(FMapView);
  SysUtils.FreeAndNil(FScreenSize);
  inherited Destroy;
end;

procedure UserProfile.SetCurrentHeading(Index: Integer; const AHeading: Heading);
begin
  FCurrentHeading := AHeading;
  FCurrentHeading_Specified := True;
end;

function UserProfile.CurrentHeading_Specified(Index: Integer): boolean;
begin
  Result := FCurrentHeading_Specified;
end;

procedure UserProfile.SetCurrentLocation(Index: Integer; const AUserLocation: UserLocation);
begin
  FCurrentLocation := AUserLocation;
  FCurrentLocation_Specified := True;
end;

function UserProfile.CurrentLocation_Specified(Index: Integer): boolean;
begin
  Result := FCurrentLocation_Specified;
end;

procedure UserProfile.SetDeviceType(Index: Integer; const ADeviceType: DeviceType);
begin
  FDeviceType := ADeviceType;
  FDeviceType_Specified := True;
end;

function UserProfile.DeviceType_Specified(Index: Integer): boolean;
begin
  Result := FDeviceType_Specified;
end;

procedure UserProfile.SetDistanceUnit(Index: Integer; const ADistanceUnit: DistanceUnit);
begin
  FDistanceUnit := ADistanceUnit;
  FDistanceUnit_Specified := True;
end;

function UserProfile.DistanceUnit_Specified(Index: Integer): boolean;
begin
  Result := FDistanceUnit_Specified;
end;

procedure UserProfile.SetIPAddress(Index: Integer; const Astring: string);
begin
  FIPAddress := Astring;
  FIPAddress_Specified := True;
end;

function UserProfile.IPAddress_Specified(Index: Integer): boolean;
begin
  Result := FIPAddress_Specified;
end;

procedure UserProfile.SetMapView(Index: Integer; const AShapeBase: ShapeBase);
begin
  FMapView := AShapeBase;
  FMapView_Specified := True;
end;

function UserProfile.MapView_Specified(Index: Integer): boolean;
begin
  Result := FMapView_Specified;
end;

procedure UserProfile.SetScreenSize(Index: Integer; const ASizeOfint: SizeOfint);
begin
  FScreenSize := ASizeOfint;
  FScreenSize_Specified := True;
end;

function UserProfile.ScreenSize_Specified(Index: Integer): boolean;
begin
  Result := FScreenSize_Specified;
end;

procedure SizeOfint.SetHeight(Index: Integer; const AInteger: Integer);
begin
  FHeight := AInteger;
  FHeight_Specified := True;
end;

function SizeOfint.Height_Specified(Index: Integer): boolean;
begin
  Result := FHeight_Specified;
end;

procedure SizeOfint.SetWidth(Index: Integer; const AInteger: Integer);
begin
  FWidth := AInteger;
  FWidth_Specified := True;
end;

function SizeOfint.Width_Specified(Index: Integer): boolean;
begin
  Result := FWidth_Specified;
end;

procedure Location.SetAltitude(Index: Integer; const ADouble: Double);
begin
  FAltitude := ADouble;
  FAltitude_Specified := True;
end;

function Location.Altitude_Specified(Index: Integer): boolean;
begin
  Result := FAltitude_Specified;
end;

procedure Location.SetLatitude(Index: Integer; const ADouble: Double);
begin
  FLatitude := ADouble;
  FLatitude_Specified := True;
end;

function Location.Latitude_Specified(Index: Integer): boolean;
begin
  Result := FLatitude_Specified;
end;

procedure Location.SetLongitude(Index: Integer; const ADouble: Double);
begin
  FLongitude := ADouble;
  FLongitude_Specified := True;
end;

function Location.Longitude_Specified(Index: Integer): boolean;
begin
  Result := FLongitude_Specified;
end;

procedure UserLocation.SetConfidence(Index: Integer; const AConfidence: Confidence);
begin
  FConfidence := AConfidence;
  FConfidence_Specified := True;
end;

function UserLocation.Confidence_Specified(Index: Integer): boolean;
begin
  Result := FConfidence_Specified;
end;

procedure GeocodeLocation.SetCalculationMethod(Index: Integer; const Astring: string);
begin
  FCalculationMethod := Astring;
  FCalculationMethod_Specified := True;
end;

function GeocodeLocation.CalculationMethod_Specified(Index: Integer): boolean;
begin
  Result := FCalculationMethod_Specified;
end;

destructor Circle.Destroy;
begin
  SysUtils.FreeAndNil(FCenter);
  inherited Destroy;
end;

procedure Circle.SetCenter(Index: Integer; const ALocation: Location);
begin
  FCenter := ALocation;
  FCenter_Specified := True;
end;

function Circle.Center_Specified(Index: Integer): boolean;
begin
  Result := FCenter_Specified;
end;

procedure Circle.SetDistanceUnit(Index: Integer; const ADistanceUnit: DistanceUnit);
begin
  FDistanceUnit := ADistanceUnit;
  FDistanceUnit_Specified := True;
end;

function Circle.DistanceUnit_Specified(Index: Integer): boolean;
begin
  Result := FDistanceUnit_Specified;
end;

procedure Circle.SetRadius(Index: Integer; const ADouble: Double);
begin
  FRadius := ADouble;
  FRadius_Specified := True;
end;

function Circle.Radius_Specified(Index: Integer): boolean;
begin
  Result := FRadius_Specified;
end;

destructor Rectangle.Destroy;
begin
  SysUtils.FreeAndNil(FNortheast);
  SysUtils.FreeAndNil(FSouthwest);
  inherited Destroy;
end;

procedure Rectangle.SetNortheast(Index: Integer; const ALocation: Location);
begin
  FNortheast := ALocation;
  FNortheast_Specified := True;
end;

function Rectangle.Northeast_Specified(Index: Integer): boolean;
begin
  Result := FNortheast_Specified;
end;

procedure Rectangle.SetSouthwest(Index: Integer; const ALocation: Location);
begin
  FSouthwest := ALocation;
  FSouthwest_Specified := True;
end;

function Rectangle.Southwest_Specified(Index: Integer): boolean;
begin
  Result := FSouthwest_Specified;
end;

destructor Polygon.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FVertices)-1 do
    SysUtils.FreeAndNil(FVertices[I]);
  System.SetLength(FVertices, 0);
  inherited Destroy;
end;

procedure Polygon.SetVertices(Index: Integer; const AArrayOfLocation: ArrayOfLocation);
begin
  FVertices := AArrayOfLocation;
  FVertices_Specified := True;
end;

function Polygon.Vertices_Specified(Index: Integer): boolean;
begin
  Result := FVertices_Specified;
end;

destructor ResponseBase.Destroy;
begin
  SysUtils.FreeAndNil(FResponseSummary);
  inherited Destroy;
end;

procedure ResponseBase.SetBrandLogoUri(Index: Integer; const Astring: string);
begin
  FBrandLogoUri := Astring;
  FBrandLogoUri_Specified := True;
end;

function ResponseBase.BrandLogoUri_Specified(Index: Integer): boolean;
begin
  Result := FBrandLogoUri_Specified;
end;

procedure ResponseBase.SetResponseSummary(Index: Integer; const AResponseSummary: ResponseSummary);
begin
  FResponseSummary := AResponseSummary;
  FResponseSummary_Specified := True;
end;

function ResponseBase.ResponseSummary_Specified(Index: Integer): boolean;
begin
  Result := FResponseSummary_Specified;
end;

procedure ResponseSummary.SetAuthenticationResultCode(Index: Integer; const AAuthenticationResultCode: AuthenticationResultCode);
begin
  FAuthenticationResultCode := AAuthenticationResultCode;
  FAuthenticationResultCode_Specified := True;
end;

function ResponseSummary.AuthenticationResultCode_Specified(Index: Integer): boolean;
begin
  Result := FAuthenticationResultCode_Specified;
end;

procedure ResponseSummary.SetCopyright(Index: Integer; const Astring: string);
begin
  FCopyright := Astring;
  FCopyright_Specified := True;
end;

function ResponseSummary.Copyright_Specified(Index: Integer): boolean;
begin
  Result := FCopyright_Specified;
end;

procedure ResponseSummary.SetFaultReason(Index: Integer; const Astring: string);
begin
  FFaultReason := Astring;
  FFaultReason_Specified := True;
end;

function ResponseSummary.FaultReason_Specified(Index: Integer): boolean;
begin
  Result := FFaultReason_Specified;
end;

procedure ResponseSummary.SetStatusCode(Index: Integer; const AResponseStatusCode: ResponseStatusCode);
begin
  FStatusCode := AResponseStatusCode;
  FStatusCode_Specified := True;
end;

function ResponseSummary.StatusCode_Specified(Index: Integer): boolean;
begin
  Result := FStatusCode_Specified;
end;

procedure ResponseSummary.SetTraceId(Index: Integer; const Astring: string);
begin
  FTraceId := Astring;
  FTraceId_Specified := True;
end;

function ResponseSummary.TraceId_Specified(Index: Integer): boolean;
begin
  Result := FTraceId_Specified;
end;

procedure RangeOfint.SetFrom(Index: Integer; const AInteger: Integer);
begin
  FFrom := AInteger;
  FFrom_Specified := True;
end;

function RangeOfint.From_Specified(Index: Integer): boolean;
begin
  Result := FFrom_Specified;
end;

procedure RangeOfint.SetTo_(Index: Integer; const AInteger: Integer);
begin
  FTo_ := AInteger;
  FTo__Specified := True;
end;

function RangeOfint.To__Specified(Index: Integer): boolean;
begin
  Result := FTo__Specified;
end;

destructor RangeOfdateTime.Destroy;
begin
  SysUtils.FreeAndNil(FFrom);
  SysUtils.FreeAndNil(FTo_);
  inherited Destroy;
end;

procedure RangeOfdateTime.SetFrom(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FFrom := ATXSDateTime;
  FFrom_Specified := True;
end;

function RangeOfdateTime.From_Specified(Index: Integer): boolean;
begin
  Result := FFrom_Specified;
end;

procedure RangeOfdateTime.SetTo_(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FTo_ := ATXSDateTime;
  FTo__Specified := True;
end;

function RangeOfdateTime.To__Specified(Index: Integer): boolean;
begin
  Result := FTo__Specified;
end;

destructor Pushpin.Destroy;
begin
  SysUtils.FreeAndNil(FLocation);
  inherited Destroy;
end;

procedure Pushpin.SetIconStyle(Index: Integer; const Astring: string);
begin
  FIconStyle := Astring;
  FIconStyle_Specified := True;
end;

function Pushpin.IconStyle_Specified(Index: Integer): boolean;
begin
  Result := FIconStyle_Specified;
end;

procedure Pushpin.SetLabel_(Index: Integer; const Astring: string);
begin
  FLabel_ := Astring;
  FLabel__Specified := True;
end;

function Pushpin.Label__Specified(Index: Integer): boolean;
begin
  Result := FLabel__Specified;
end;

procedure Pushpin.SetLocation(Index: Integer; const ALocation: Location);
begin
  FLocation := ALocation;
  FLocation_Specified := True;
end;

function Pushpin.Location_Specified(Index: Integer): boolean;
begin
  Result := FLocation_Specified;
end;

procedure ResponseSummary2.SetAuthenticationResultCode(Index: Integer; const AAuthenticationResultCode: AuthenticationResultCode);
begin
  FAuthenticationResultCode := AAuthenticationResultCode;
  FAuthenticationResultCode_Specified := True;
end;

function ResponseSummary2.AuthenticationResultCode_Specified(Index: Integer): boolean;
begin
  Result := FAuthenticationResultCode_Specified;
end;

procedure ResponseSummary2.SetCopyright(Index: Integer; const Astring: string);
begin
  FCopyright := Astring;
  FCopyright_Specified := True;
end;

function ResponseSummary2.Copyright_Specified(Index: Integer): boolean;
begin
  Result := FCopyright_Specified;
end;

procedure ResponseSummary2.SetFaultReason(Index: Integer; const Astring: string);
begin
  FFaultReason := Astring;
  FFaultReason_Specified := True;
end;

function ResponseSummary2.FaultReason_Specified(Index: Integer): boolean;
begin
  Result := FFaultReason_Specified;
end;

procedure ResponseSummary2.SetStatusCode(Index: Integer; const AResponseStatusCode: ResponseStatusCode);
begin
  FStatusCode := AResponseStatusCode;
  FStatusCode_Specified := True;
end;

function ResponseSummary2.StatusCode_Specified(Index: Integer): boolean;
begin
  Result := FStatusCode_Specified;
end;

procedure ResponseSummary2.SetTraceId(Index: Integer; const Astring: string);
begin
  FTraceId := Astring;
  FTraceId_Specified := True;
end;

function ResponseSummary2.TraceId_Specified(Index: Integer): boolean;
begin
  Result := FTraceId_Specified;
end;

destructor ImageryMetadataRequest.Destroy;
begin
  SysUtils.FreeAndNil(FOptions);
  inherited Destroy;
end;

procedure ImageryMetadataRequest.SetOptions(Index: Integer; const AImageryMetadataOptions: ImageryMetadataOptions);
begin
  FOptions := AImageryMetadataOptions;
  FOptions_Specified := True;
end;

function ImageryMetadataRequest.Options_Specified(Index: Integer): boolean;
begin
  Result := FOptions_Specified;
end;

procedure ImageryMetadataRequest.SetStyle(Index: Integer; const AMapStyle: MapStyle);
begin
  FStyle := AMapStyle;
  FStyle_Specified := True;
end;

function ImageryMetadataRequest.Style_Specified(Index: Integer): boolean;
begin
  Result := FStyle_Specified;
end;

destructor ImageryMetadataOptions.Destroy;
begin
  SysUtils.FreeAndNil(FHeading);
  SysUtils.FreeAndNil(FLocation);
  inherited Destroy;
end;

procedure ImageryMetadataOptions.SetHeading(Index: Integer; const AHeading: Heading);
begin
  FHeading := AHeading;
  FHeading_Specified := True;
end;

function ImageryMetadataOptions.Heading_Specified(Index: Integer): boolean;
begin
  Result := FHeading_Specified;
end;

procedure ImageryMetadataOptions.SetLocation(Index: Integer; const ALocation: Location);
begin
  FLocation := ALocation;
  FLocation_Specified := True;
end;

function ImageryMetadataOptions.Location_Specified(Index: Integer): boolean;
begin
  Result := FLocation_Specified;
end;

procedure ImageryMetadataOptions.SetReturnImageryProviders(Index: Integer; const ABoolean: Boolean);
begin
  FReturnImageryProviders := ABoolean;
  FReturnImageryProviders_Specified := True;
end;

function ImageryMetadataOptions.ReturnImageryProviders_Specified(Index: Integer): boolean;
begin
  Result := FReturnImageryProviders_Specified;
end;

procedure ImageryMetadataOptions.SetUriScheme(Index: Integer; const AUriScheme: UriScheme);
begin
  FUriScheme := AUriScheme;
  FUriScheme_Specified := True;
end;

function ImageryMetadataOptions.UriScheme_Specified(Index: Integer): boolean;
begin
  Result := FUriScheme_Specified;
end;

procedure ImageryMetadataOptions.SetZoomLevel(Index: Integer; const AInteger: Integer);
begin
  FZoomLevel := AInteger;
  FZoomLevel_Specified := True;
end;

function ImageryMetadataOptions.ZoomLevel_Specified(Index: Integer): boolean;
begin
  Result := FZoomLevel_Specified;
end;

destructor ImageryMetadataResponse.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FResults)-1 do
    SysUtils.FreeAndNil(FResults[I]);
  System.SetLength(FResults, 0);
  inherited Destroy;
end;

procedure ImageryMetadataResponse.SetResults(Index: Integer; const AArrayOfImageryMetadataResult: ArrayOfImageryMetadataResult);
begin
  FResults := AArrayOfImageryMetadataResult;
  FResults_Specified := True;
end;

function ImageryMetadataResponse.Results_Specified(Index: Integer): boolean;
begin
  Result := FResults_Specified;
end;

destructor ImageryMetadataResult.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FImageryProviders)-1 do
    SysUtils.FreeAndNil(FImageryProviders[I]);
  System.SetLength(FImageryProviders, 0);
  SysUtils.FreeAndNil(FImageSize);
  SysUtils.FreeAndNil(FVintage);
  SysUtils.FreeAndNil(FZoomRange);
  inherited Destroy;
end;

procedure ImageryMetadataResult.SetImageSize(Index: Integer; const ASizeOfint: SizeOfint);
begin
  FImageSize := ASizeOfint;
  FImageSize_Specified := True;
end;

function ImageryMetadataResult.ImageSize_Specified(Index: Integer): boolean;
begin
  Result := FImageSize_Specified;
end;

procedure ImageryMetadataResult.SetImageUri(Index: Integer; const Astring: string);
begin
  FImageUri := Astring;
  FImageUri_Specified := True;
end;

function ImageryMetadataResult.ImageUri_Specified(Index: Integer): boolean;
begin
  Result := FImageUri_Specified;
end;

procedure ImageryMetadataResult.SetImageUriSubdomains(Index: Integer; const AArrayOfstring: ArrayOfstring);
begin
  FImageUriSubdomains := AArrayOfstring;
  FImageUriSubdomains_Specified := True;
end;

function ImageryMetadataResult.ImageUriSubdomains_Specified(Index: Integer): boolean;
begin
  Result := FImageUriSubdomains_Specified;
end;

procedure ImageryMetadataResult.SetImageryProviders(Index: Integer; const AArrayOfImageryProvider: ArrayOfImageryProvider);
begin
  FImageryProviders := AArrayOfImageryProvider;
  FImageryProviders_Specified := True;
end;

function ImageryMetadataResult.ImageryProviders_Specified(Index: Integer): boolean;
begin
  Result := FImageryProviders_Specified;
end;

procedure ImageryMetadataResult.SetVintage(Index: Integer; const ARangeOfdateTime: RangeOfdateTime);
begin
  FVintage := ARangeOfdateTime;
  FVintage_Specified := True;
end;

function ImageryMetadataResult.Vintage_Specified(Index: Integer): boolean;
begin
  Result := FVintage_Specified;
end;

procedure ImageryMetadataResult.SetZoomRange(Index: Integer; const ARangeOfint: RangeOfint);
begin
  FZoomRange := ARangeOfint;
  FZoomRange_Specified := True;
end;

function ImageryMetadataResult.ZoomRange_Specified(Index: Integer): boolean;
begin
  Result := FZoomRange_Specified;
end;

destructor ImageryProvider.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FCoverageAreas)-1 do
    SysUtils.FreeAndNil(FCoverageAreas[I]);
  System.SetLength(FCoverageAreas, 0);
  inherited Destroy;
end;

procedure ImageryProvider.SetAttribution(Index: Integer; const Astring: string);
begin
  FAttribution := Astring;
  FAttribution_Specified := True;
end;

function ImageryProvider.Attribution_Specified(Index: Integer): boolean;
begin
  Result := FAttribution_Specified;
end;

procedure ImageryProvider.SetCoverageAreas(Index: Integer; const AArrayOfCoverageArea: ArrayOfCoverageArea);
begin
  FCoverageAreas := AArrayOfCoverageArea;
  FCoverageAreas_Specified := True;
end;

function ImageryProvider.CoverageAreas_Specified(Index: Integer): boolean;
begin
  Result := FCoverageAreas_Specified;
end;

destructor CoverageArea.Destroy;
begin
  SysUtils.FreeAndNil(FBoundingRectangle);
  SysUtils.FreeAndNil(FZoomRange);
  inherited Destroy;
end;

procedure CoverageArea.SetBoundingRectangle(Index: Integer; const ARectangle: Rectangle);
begin
  FBoundingRectangle := ARectangle;
  FBoundingRectangle_Specified := True;
end;

function CoverageArea.BoundingRectangle_Specified(Index: Integer): boolean;
begin
  Result := FBoundingRectangle_Specified;
end;

procedure CoverageArea.SetZoomRange(Index: Integer; const ARangeOfint: RangeOfint);
begin
  FZoomRange := ARangeOfint;
  FZoomRange_Specified := True;
end;

function CoverageArea.ZoomRange_Specified(Index: Integer): boolean;
begin
  Result := FZoomRange_Specified;
end;

destructor ImageryMetadataBirdseyeResult.Destroy;
begin
  SysUtils.FreeAndNil(FHeading);
  inherited Destroy;
end;

procedure ImageryMetadataBirdseyeResult.SetHeading(Index: Integer; const AHeading: Heading);
begin
  FHeading := AHeading;
  FHeading_Specified := True;
end;

function ImageryMetadataBirdseyeResult.Heading_Specified(Index: Integer): boolean;
begin
  Result := FHeading_Specified;
end;

procedure ImageryMetadataBirdseyeResult.SetTilesX(Index: Integer; const AInteger: Integer);
begin
  FTilesX := AInteger;
  FTilesX_Specified := True;
end;

function ImageryMetadataBirdseyeResult.TilesX_Specified(Index: Integer): boolean;
begin
  Result := FTilesX_Specified;
end;

procedure ImageryMetadataBirdseyeResult.SetTilesY(Index: Integer; const AInteger: Integer);
begin
  FTilesY := AInteger;
  FTilesY_Specified := True;
end;

function ImageryMetadataBirdseyeResult.TilesY_Specified(Index: Integer): boolean;
begin
  Result := FTilesY_Specified;
end;

destructor MapUriRequest.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FPushpins)-1 do
    SysUtils.FreeAndNil(FPushpins[I]);
  System.SetLength(FPushpins, 0);
  SysUtils.FreeAndNil(FCenter);
  SysUtils.FreeAndNil(FMajorRoutesDestination);
  SysUtils.FreeAndNil(FOptions);
  inherited Destroy;
end;

procedure MapUriRequest.SetCenter(Index: Integer; const ALocation: Location);
begin
  FCenter := ALocation;
  FCenter_Specified := True;
end;

function MapUriRequest.Center_Specified(Index: Integer): boolean;
begin
  Result := FCenter_Specified;
end;

procedure MapUriRequest.SetMajorRoutesDestination(Index: Integer; const ALocation: Location);
begin
  FMajorRoutesDestination := ALocation;
  FMajorRoutesDestination_Specified := True;
end;

function MapUriRequest.MajorRoutesDestination_Specified(Index: Integer): boolean;
begin
  Result := FMajorRoutesDestination_Specified;
end;

procedure MapUriRequest.SetOptions(Index: Integer; const AMapUriOptions: MapUriOptions);
begin
  FOptions := AMapUriOptions;
  FOptions_Specified := True;
end;

function MapUriRequest.Options_Specified(Index: Integer): boolean;
begin
  Result := FOptions_Specified;
end;

procedure MapUriRequest.SetPushpins(Index: Integer; const AArrayOfPushpin: ArrayOfPushpin);
begin
  FPushpins := AArrayOfPushpin;
  FPushpins_Specified := True;
end;

function MapUriRequest.Pushpins_Specified(Index: Integer): boolean;
begin
  Result := FPushpins_Specified;
end;

destructor MapUriOptions.Destroy;
begin
  SysUtils.FreeAndNil(FImageSize);
  inherited Destroy;
end;

procedure MapUriOptions.SetDisplayLayers(Index: Integer; const AArrayOfstring: ArrayOfstring);
begin
  FDisplayLayers := AArrayOfstring;
  FDisplayLayers_Specified := True;
end;

function MapUriOptions.DisplayLayers_Specified(Index: Integer): boolean;
begin
  Result := FDisplayLayers_Specified;
end;

procedure MapUriOptions.SetImageSize(Index: Integer; const ASizeOfint: SizeOfint);
begin
  FImageSize := ASizeOfint;
  FImageSize_Specified := True;
end;

function MapUriOptions.ImageSize_Specified(Index: Integer): boolean;
begin
  Result := FImageSize_Specified;
end;

procedure MapUriOptions.SetImageType(Index: Integer; const AImageType: ImageType);
begin
  FImageType := AImageType;
  FImageType_Specified := True;
end;

function MapUriOptions.ImageType_Specified(Index: Integer): boolean;
begin
  Result := FImageType_Specified;
end;

procedure MapUriOptions.SetPreventIconCollision(Index: Integer; const ABoolean: Boolean);
begin
  FPreventIconCollision := ABoolean;
  FPreventIconCollision_Specified := True;
end;

function MapUriOptions.PreventIconCollision_Specified(Index: Integer): boolean;
begin
  Result := FPreventIconCollision_Specified;
end;

procedure MapUriOptions.SetStyle(Index: Integer; const AMapStyle: MapStyle);
begin
  FStyle := AMapStyle;
  FStyle_Specified := True;
end;

function MapUriOptions.Style_Specified(Index: Integer): boolean;
begin
  Result := FStyle_Specified;
end;

procedure MapUriOptions.SetUriScheme(Index: Integer; const AUriScheme: UriScheme);
begin
  FUriScheme := AUriScheme;
  FUriScheme_Specified := True;
end;

function MapUriOptions.UriScheme_Specified(Index: Integer): boolean;
begin
  Result := FUriScheme_Specified;
end;

procedure MapUriOptions.SetZoomLevel(Index: Integer; const AInteger: Integer);
begin
  FZoomLevel := AInteger;
  FZoomLevel_Specified := True;
end;

function MapUriOptions.ZoomLevel_Specified(Index: Integer): boolean;
begin
  Result := FZoomLevel_Specified;
end;

procedure MapUriResponse.SetUri(Index: Integer; const Astring: string);
begin
  FUri := Astring;
  FUri_Specified := True;
end;

function MapUriResponse.Uri_Specified(Index: Integer): boolean;
begin
  Result := FUri_Specified;
end;

destructor SearchPoint.Destroy;
begin
  SysUtils.FreeAndNil(FPoint);
  inherited Destroy;
end;

procedure SearchPoint.SetPoint(Index: Integer; const ALocation: Location);
begin
  FPoint := ALocation;
  FPoint_Specified := True;
end;

function SearchPoint.Point_Specified(Index: Integer): boolean;
begin
  Result := FPoint_Specified;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(IImageryService), 'http://dev.virtualearth.net/webservices/v1/imagery/contracts', 'UTF-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IImageryService), 'http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/%operationName%');
  InvRegistry.RegisterInvokeOptions(TypeInfo(IImageryService), ioDocument);
  RemClassRegistry.RegisterXSClass(RequestBase, 'http://dev.virtualearth.net/webservices/v1/common', 'RequestBase');
  RemClassRegistry.RegisterXSClass(Credentials, 'http://dev.virtualearth.net/webservices/v1/common', 'Credentials');
  RemClassRegistry.RegisterXSClass(ExecutionOptions, 'http://dev.virtualearth.net/webservices/v1/common', 'ExecutionOptions');
  RemClassRegistry.RegisterXSClass(Heading, 'http://dev.virtualearth.net/webservices/v1/common', 'Heading');
  RemClassRegistry.RegisterXSInfo(TypeInfo(DeviceType), 'http://dev.virtualearth.net/webservices/v1/common', 'DeviceType');
  RemClassRegistry.RegisterXSInfo(TypeInfo(DistanceUnit), 'http://dev.virtualearth.net/webservices/v1/common', 'DistanceUnit');
  RemClassRegistry.RegisterXSClass(UserProfile, 'http://dev.virtualearth.net/webservices/v1/common', 'UserProfile');
  RemClassRegistry.RegisterXSClass(ShapeBase, 'http://dev.virtualearth.net/webservices/v1/common', 'ShapeBase');
  RemClassRegistry.RegisterXSClass(SizeOfint, 'http://dev.virtualearth.net/webservices/v1/common', 'SizeOfint');
  RemClassRegistry.RegisterXSClass(Location, 'http://dev.virtualearth.net/webservices/v1/common', 'Location');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Confidence), 'http://dev.virtualearth.net/webservices/v1/common', 'Confidence');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Confidence), 'High_', 'High');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Confidence), 'Low_', 'Low');
  RemClassRegistry.RegisterXSClass(UserLocation, 'http://dev.virtualearth.net/webservices/v1/common', 'UserLocation');
  RemClassRegistry.RegisterXSClass(GeocodeLocation, 'http://dev.virtualearth.net/webservices/v1/common', 'GeocodeLocation');
  RemClassRegistry.RegisterXSClass(Circle, 'http://dev.virtualearth.net/webservices/v1/common', 'Circle');
  RemClassRegistry.RegisterXSClass(Rectangle, 'http://dev.virtualearth.net/webservices/v1/common', 'Rectangle');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfLocation), 'http://dev.virtualearth.net/webservices/v1/common', 'ArrayOfLocation');
  RemClassRegistry.RegisterXSClass(Polygon, 'http://dev.virtualearth.net/webservices/v1/common', 'Polygon');
  RemClassRegistry.RegisterXSClass(ResponseBase, 'http://dev.virtualearth.net/webservices/v1/common', 'ResponseBase');
  RemClassRegistry.RegisterXSInfo(TypeInfo(AuthenticationResultCode), 'http://dev.virtualearth.net/webservices/v1/common', 'AuthenticationResultCode');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ResponseStatusCode), 'http://dev.virtualearth.net/webservices/v1/common', 'ResponseStatusCode');
  RemClassRegistry.RegisterXSClass(ResponseSummary, 'http://dev.virtualearth.net/webservices/v1/common', 'ResponseSummary');
  RemClassRegistry.RegisterXSClass(RangeOfint, 'http://dev.virtualearth.net/webservices/v1/common', 'RangeOfint');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(RangeOfint), 'To_', 'To');
  RemClassRegistry.RegisterXSClass(RangeOfdateTime, 'http://dev.virtualearth.net/webservices/v1/common', 'RangeOfdateTime');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(RangeOfdateTime), 'To_', 'To');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfPushpin), 'http://dev.virtualearth.net/webservices/v1/common', 'ArrayOfPushpin');
  RemClassRegistry.RegisterXSClass(Pushpin, 'http://dev.virtualearth.net/webservices/v1/common', 'Pushpin');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Pushpin), 'Label_', 'Label');
  RemClassRegistry.RegisterXSInfo(TypeInfo(UriScheme), 'http://dev.virtualearth.net/webservices/v1/common', 'UriScheme');
  RemClassRegistry.RegisterXSInfo(TypeInfo(MapStyle), 'http://dev.virtualearth.net/webservices/v1/common', 'MapStyle');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ImageType), 'http://dev.virtualearth.net/webservices/v1/common', 'ImageType');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ImageType), 'Default_', 'Default');
  RemClassRegistry.RegisterXSClass(RequestBase2, 'http://dev.virtualearth.net/webservices/v1/common', 'RequestBase2', 'RequestBase');
  RemClassRegistry.RegisterXSClass(Credentials2, 'http://dev.virtualearth.net/webservices/v1/common', 'Credentials2', 'Credentials');
  RemClassRegistry.RegisterXSClass(ExecutionOptions2, 'http://dev.virtualearth.net/webservices/v1/common', 'ExecutionOptions2', 'ExecutionOptions');
  RemClassRegistry.RegisterXSClass(UserProfile2, 'http://dev.virtualearth.net/webservices/v1/common', 'UserProfile2', 'UserProfile');
  RemClassRegistry.RegisterXSClass(Heading2, 'http://dev.virtualearth.net/webservices/v1/common', 'Heading2', 'Heading');
  RemClassRegistry.RegisterXSClass(UserLocation2, 'http://dev.virtualearth.net/webservices/v1/common', 'UserLocation2', 'UserLocation');
  RemClassRegistry.RegisterXSClass(Location2, 'http://dev.virtualearth.net/webservices/v1/common', 'Location2', 'Location');
  RemClassRegistry.RegisterXSClass(GeocodeLocation2, 'http://dev.virtualearth.net/webservices/v1/common', 'GeocodeLocation2', 'GeocodeLocation');
  RemClassRegistry.RegisterXSClass(ShapeBase2, 'http://dev.virtualearth.net/webservices/v1/common', 'ShapeBase2', 'ShapeBase');
  RemClassRegistry.RegisterXSClass(Circle2, 'http://dev.virtualearth.net/webservices/v1/common', 'Circle2', 'Circle');
  RemClassRegistry.RegisterXSClass(Rectangle2, 'http://dev.virtualearth.net/webservices/v1/common', 'Rectangle2', 'Rectangle');
  RemClassRegistry.RegisterXSClass(Polygon2, 'http://dev.virtualearth.net/webservices/v1/common', 'Polygon2', 'Polygon');
  RemClassRegistry.RegisterXSClass(SizeOfint2, 'http://dev.virtualearth.net/webservices/v1/common', 'SizeOfint2', 'SizeOfint');
  RemClassRegistry.RegisterXSClass(ResponseBase2, 'http://dev.virtualearth.net/webservices/v1/common', 'ResponseBase2', 'ResponseBase');
  RemClassRegistry.RegisterXSClass(ResponseSummary2, 'http://dev.virtualearth.net/webservices/v1/common', 'ResponseSummary2', 'ResponseSummary');
  RemClassRegistry.RegisterXSClass(RangeOfint2, 'http://dev.virtualearth.net/webservices/v1/common', 'RangeOfint2', 'RangeOfint');
  RemClassRegistry.RegisterXSClass(RangeOfdateTime2, 'http://dev.virtualearth.net/webservices/v1/common', 'RangeOfdateTime2', 'RangeOfdateTime');
  RemClassRegistry.RegisterXSClass(Pushpin2, 'http://dev.virtualearth.net/webservices/v1/common', 'Pushpin2', 'Pushpin');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfstring), 'http://schemas.microsoft.com/2003/10/Serialization/Arrays', 'ArrayOfstring');
  RemClassRegistry.RegisterXSClass(ImageryMetadataRequest, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataRequest');
  RemClassRegistry.RegisterXSClass(ImageryMetadataOptions, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataOptions');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfImageryMetadataResult), 'http://dev.virtualearth.net/webservices/v1/imagery', 'ArrayOfImageryMetadataResult');
  RemClassRegistry.RegisterXSClass(ImageryMetadataResponse, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfImageryProvider), 'http://dev.virtualearth.net/webservices/v1/imagery', 'ArrayOfImageryProvider');
  RemClassRegistry.RegisterXSClass(ImageryMetadataResult, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataResult');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfCoverageArea), 'http://dev.virtualearth.net/webservices/v1/imagery', 'ArrayOfCoverageArea');
  RemClassRegistry.RegisterXSClass(ImageryProvider, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryProvider');
  RemClassRegistry.RegisterXSClass(CoverageArea, 'http://dev.virtualearth.net/webservices/v1/imagery', 'CoverageArea');
  RemClassRegistry.RegisterXSClass(ImageryMetadataBirdseyeResult, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataBirdseyeResult');
  RemClassRegistry.RegisterXSClass(MapUriRequest, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriRequest');
  RemClassRegistry.RegisterXSClass(MapUriOptions, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriOptions');
  RemClassRegistry.RegisterXSClass(MapUriResponse, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriResponse');
  RemClassRegistry.RegisterXSClass(ImageryMetadataRequest2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataRequest2', 'ImageryMetadataRequest');
  RemClassRegistry.RegisterXSClass(ImageryMetadataOptions2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataOptions2', 'ImageryMetadataOptions');
  RemClassRegistry.RegisterXSClass(ImageryMetadataResponse2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataResponse2', 'ImageryMetadataResponse');
  RemClassRegistry.RegisterXSClass(ImageryMetadataResult2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataResult2', 'ImageryMetadataResult');
  RemClassRegistry.RegisterXSClass(ImageryProvider2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryProvider2', 'ImageryProvider');
  RemClassRegistry.RegisterXSClass(CoverageArea2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'CoverageArea2', 'CoverageArea');
  RemClassRegistry.RegisterXSClass(ImageryMetadataBirdseyeResult2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'ImageryMetadataBirdseyeResult2', 'ImageryMetadataBirdseyeResult');
  RemClassRegistry.RegisterXSClass(MapUriRequest2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriRequest2', 'MapUriRequest');
  RemClassRegistry.RegisterXSClass(MapUriOptions2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriOptions2', 'MapUriOptions');
  RemClassRegistry.RegisterXSClass(MapUriResponse2, 'http://dev.virtualearth.net/webservices/v1/imagery', 'MapUriResponse2', 'MapUriResponse');
  RemClassRegistry.RegisterXSClass(SearchPoint, 'http://dev.virtualearth.net/webservices/v1/search', 'SearchPoint');
  RemClassRegistry.RegisterXSClass(SearchPoint2, 'http://dev.virtualearth.net/webservices/v1/search', 'SearchPoint2', 'SearchPoint');

end.